home *** CD-ROM | disk | FTP | other *** search
/ Technotools / Technotools (Chestnut CD-ROM)(1993).ISO / lang_c / msqc25t1 / drives.c < prev    next >
C/C++ Source or Header  |  1990-09-03  |  1KB  |  44 lines

  1.  
  2. /* DRIVES.C illustrates drive functions including:
  3.  *      _getdrive       _chdrive        _getdcwd
  4.  *
  5.  * See DIRECT.C for an example of getcwd.
  6.  */
  7.  
  8. #include <stdio.h>
  9. #include <conio.h>
  10. #include <direct.h>
  11. #include <stdlib.h>
  12.  
  13. void main()
  14. {
  15.     int ch, drive, curdrive;
  16.     static char path[_MAX_PATH];
  17.  
  18.     /* Save current drive. */
  19.     curdrive = _getdrive();
  20.  
  21.     printf( "Available drives are: \n" );
  22.  
  23.     /* If we can switch to the drive, it exists. */
  24.     for( drive = 1; drive <= 26; drive++ )
  25.         if( !_chdrive( drive ) )
  26.             printf( "%c: ", drive + 'A' - 1 );
  27.  
  28.     while( 1 )
  29.     {
  30.         printf( "\nType drive letter to check or ESC to quit: " );
  31.         ch = getch();
  32.         if( ch == 27 )
  33.             break;
  34.         if( _getdcwd( toupper( ch ) - 'A' + 1, path, _MAX_PATH ) != NULL )
  35.             printf( "\nCurrent directory on that drive is %s\n", path );
  36.     }
  37.  
  38.     /* Restore original drive. This is only necessary for DOS. Under OS/2,
  39.      * the current drive of the calling process is always restored.
  40.      */
  41.     _chdrive( curdrive );
  42. }
  43.  
  44.